// 思路：用一个队列模拟，每次pop的时候，把队列的最后一个元素放到队首，其他元素重新入队

function MyStack() {
    this.queue = []
}

MyStack.prototype.push = function (x) {
    this.queue.push(x)
}

MyStack.prototype.pop = function () {
    let size = this.queue.length
    while (size > 1) {
        this.queue.push(this.queue.shift())
        size--
    }
    return this.queue.shift()
}

MyStack.prototype.top = function () {
    let val = this.pop()
    this.queue.push(val)
    return val
}

MyStack.prototype.empty = function () {
    return !this.queue.length
}